const API=require('../http/api')

//检测微信登录状态
function checkWxSession() {

    return new Promise((resolve,reject)=>{

        wx.checkSession({
          success: () => {
            resolve(true)
          },
          fail:()=>{
            resolve(false)
          }
        })

    }) 

}




//检测用户是否登录
async function hashCheckedLogined() {

   //1.查看本地是否有token

   //获取本地token
   const token=wx.getStorageSync('token')

   if(!token) {
     return false
   }


   //2.如果本地有token，检测token是否有效，与后台登录状态进行比对

     //思路：将上面获取的token通过一个检测token是否效的接口来检测
   const isValid=await API.checkTokenApi(token)
   if(isValid!==0) {
     //如果本地token无效，则删除本地token
     wx.removeStorageSync('token')

     //返回false
     return false
   }

   //3.检测用户微信的登录状态
   const isOk=await checkWxSession()
   if(!isOk) {
     //如果微信登录过期，删除本地token
     wx.removeStorageSync('token')

      //返回false
      return false
   }



    return true

   
}

//用户自动登录注册方法
function  autoLoginAndRegister() {

    return new Promise((resolve,rejct)=>{

           //通过wx.login中的code码来换取token
      wx.login({
      async success(res) {
        console.log('wx.login:',res)
        //将code码通过调用公司后台接口，来拿到token
        const result=await API.autoAuthorize(res.code)
        console.log('终于拿到token和其他信息。。。：',result)

        if(result.code===0) {
           //将token和uid保存到本地，方便其他业务接口调接口时携带
          wx.setStorageSync('token', result.data.token)
          wx.setStorageSync('uid', result.data.uid)
          resolve()

        }
      }
    })




    })


}




module.exports={
  hashCheckedLogined,
  autoLoginAndRegister
}